package br.edu.ifpb.entidade;

import java.io.Serializable;
import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

@Entity
@NamedQueries({
		@NamedQuery(name = "Agencia.findByMatricula", query = "SELECT a FROM Agencia a WHERE a.matriculaGerente = :matricula AND a.senhaGerente = :senha")
})
@Table(name = "tb_agencia")
public class Agencia implements Serializable {

	private static final long serialVersionUID = 1L;

	@Id
	@GeneratedValue
	@Column(name = "id_agencia", nullable = true)
	private int idAgencia;

	@Column(name = "nm_agencia", nullable = true)
	private String nome;

	@Column(name = "nr_agencia", nullable = true)
	private int numero;

	@Column(name = "nr_quant_funcionarios", nullable = true)
	private int quantidadeFuncionarios;

	@Column(name = "nm_gerente", nullable = true)
	private String nomeGerente;

	@Column(name = "nr_matricula_gerente", nullable = true)
	private String matriculaGerente;

	@Column(name = "pw_gerente", nullable = true)
	private String senhaGerente;

	@Column(name = "dt_abertura_agencia", nullable = true)
	private Date dataAberturaAgencia;

	@Temporal(value = TemporalType.TIMESTAMP)
	@Column(name = "dt_registro", nullable = true, columnDefinition = "TIMESTAMP")
	private Date registro;

	public Agencia() {
	}

	public int getIdAgencia() {
		return idAgencia;
	}

	public void setIdAgencia(int idAgencia) {
		this.idAgencia = idAgencia;
	}

	public String getNome() {
		return nome;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}

	public int getNumero() {
		return numero;
	}

	public void setNumero(int numero) {
		this.numero = numero;
	}

	public int getQuantidadeFuncionarios() {
		return quantidadeFuncionarios;
	}

	public void setQuantidadeFuncionarios(int quantidadeFuncionarios) {
		this.quantidadeFuncionarios = quantidadeFuncionarios;
	}

	public String getNomeGerente() {
		return nomeGerente;
	}

	public void setNomeGerente(String nomeGerente) {
		this.nomeGerente = nomeGerente;
	}

	public String getMatriculaGerente() {
		return matriculaGerente;
	}

	public void setMatriculaGerente(String matriculaGerente) {
		this.matriculaGerente = matriculaGerente;
	}

	public String getSenhaGerente() {
		return senhaGerente;
	}

	public void setSenhaGerente(String senhaGerente) {
		this.senhaGerente = senhaGerente;
	}

	public Date getDataAberturaAgencia() {
		return dataAberturaAgencia;
	}

	public void setDataAberturaAgencia(Date dataAberturaAgencia) {
		this.dataAberturaAgencia = dataAberturaAgencia;
	}

	public Date getRegistro() {
		return registro;
	}

	public void setRegistro(Date registro) {
		this.registro = registro;
	}

}
